大家好,我們是 AI . FREE Team - 人工智慧自由團隊,這一次的鐵人賽,自由團隊將從0到1 手把手教各位讀者學會 (1)Python基礎語法 (2)Python Web 網頁開發框架 – Django (3)Python網頁爬蟲 – 周易解夢網 (4)Tensorflow AI語言模型基礎與訓練 – LSTM (5)實際部屬AI解夢模型到Web框架上。
自由團隊的成立宗旨為開發AI/新科技的學習資源,提供各領域的學習者能夠跨域學習資料科學,並透過自主學習發展協槓職涯,結合智能應用到各式領域,無論是文、法、商、管、醫領域的朋友,都可以自由的學習AI技術。
AI . FREE Team 讀者專屬福利 → Python Basics 免費學習資源
歡迎各位學習 Python Basics 的讀者,參考自由團隊製作的教學影片!(目前教學影片仍持續拍攝、剪輯中,歡迎未來有興趣持續學習的讀者們,關注我們的 Youtube Channel ,我們將持續為各位讀者提供更多學習資源!)
Lesson00 Preface 課程前言
Lesson01 Variable 變數
Lesson02 Operator 運算子
Lesson03 Data Structure 資料結構
(讀者們在讀文章時,搭配實作 & Youtube 教學影片,可達到最大的學習效益喔!)
這一單元會快速帶過常用的 Python 函式及一些功能,不太熟悉沒關係,之後常常用到就會囉!就讓我們先從基礎的知識學起!
條件語法是通過一個或多個條件的執行結果(True或者False),來決定接下來要執行哪一段程式碼。
條件語句的執行過程:
if 判斷條件:
<執行程式碼……>
else:
<執行程式碼……>
x = 1
if x == 1: # 判斷變數是否爲 1
print('hi!') # 輸出判斷結果
else: # 否則
print('None') # 輸出判斷結果
if 語句的判斷條件可以用>(大於)、<(小於)、==(等於)、>=(大於等於)、<=(小於等於)來進行判斷。
當判斷條件有多個邏輯時,可使用 elif 來增加判斷的條件:
if 判斷條件1:
<執行代碼1……>
elif 判斷條件2:
<執行代碼2……>
elif 判斷條件3:
<執行代碼3……>
else:
<執行代碼4……>
number = 21
if number >= 18: # 判斷 number 是否大於 18
print('eighteen')
elif number == 21: # 判斷 number 是否等於 21
print('twenty-one')
elif number >= 1: # 判斷 number 是否大於等於 1
print('one')
else:
print('not') # 條件均不成立時輸出
依照上述範例,因滿足大於 18 的條件,所以程式碼會優先輸出 "eighteen" 。
若今天要判斷多個條件同時滿足,我們可以使用 and
num = 9
if num >= 0 and num <= 10: # 判斷值是否在0~10之間
print('between 0 and 10')
輸出結果:between 0 and 10。
如果條件判斷為取其一滿足即可,可以使用 or
number = 10
if number < 0 or number > 10: # 判斷 number 是否小於0或大於10
print('less than 0 or more than 10')
else:
print('undefine')
輸出結果:undefine。
while 用於 ”反覆” 執行,意即在判斷條件下,反覆執行某段程式碼,以重複處理相同的任務。
其程式碼編寫的結構為:
while(繼續的條件):
<當條件成立時,執行的程式碼>
while 繼續的條件成立,就執行程式碼。執行完畢後,回到 while 再次判斷條件是否成立,若判斷成立就再次執行程式碼,執行完畢後,回到 while 再次判斷條件是否成立,...直到條件不成立,就跳脫 while 迴圈結束。
c = 0
while (c < 9):
print(c)
c = c + 1
看看上述實例,
一開始 c 為 0,while 迴圈設定:當c小於9,這個條件成立,因此他會print出c,然後再將c+1;再將新的c,也就是c+1,再回到while的條件進行判斷:當c小於9,條件依舊成立,因為1 < 9,因此他會print出新的c,然後c再+1,一直反覆上面的邏輯,while 會一直執行直到 c=9,判斷條件不成立時,停止迴圈。
其他在 while 常見的程式碼有 :
i = 1
while i < 10:
i += 1
if(i%2)> 0: # 非雙數時跳過輸出
continue
print(i) # 輸出雙數2、4、6、8、10
j = 1
while 1: # 循環條件爲1必定成立
print(j) # 輸出1~10
j += 1
if j > 5: # 當i大於10時跳出循環
break
print('end')
因此若不使用break跳出迴圈,電腦就會持續反覆執行,也就是無窮迴圈(如下所示):
inifinty = 1
num = inifinty
while inifinty == 1 : # 該條件永遠爲true,迴圈將無限執行下去
num = num + 1
print("You entered: ",num)
print("Never!")
# 記得break迴圈 (ctrl+break, ctrl+C...)
for 迴圈會依序跑過所有資料,如一個list、一個字符串、或是一個數字範圍(range)。
for i in 'New York': # 一個字幅串的範例,輸出會是一行一個字母
print('當前字母 :',i)
# 一個list 的範例,輸出會是一行一個項目
countries = ['Detroit','Arizona','Georgia']
for country in countries:
print('當前地名 :',country)
for後面的代號可以依據自己的偏好設定,但此代號仍屬於全域變數(global variable),而非區域變數(local variable);因此在使用上,千萬不用遇到已使用過的變數代號。
下面是一個判斷質數與否的程式碼,順便示範 for 搭配 else & range 的用法,有點複雜,若有不理解的部分也歡迎隨時與我們反饋喔!
for num in range(2,20): # num 迭代 2 到 19 (loop num = 2 到 num = 19)
for i in range(2,num): # i 迭代 2 到 num
if num%i == 0: # 判斷 num 是否可以被 i (因數) 整除
j=num/i # 若有 i 可以整除 num,計算 j (另一個因數)
print(num,"等於",i,"*",j) # 輸出數值的乘積
break # 跳出當前 for 迴圈(for i in range(2,num))
# 回到上一個外層的迴圈(for num in range(2,20))
else: # 當 for 迴圈中(for i in range(2,num)),並無判斷出因數,即透過else輸出質數
print(num, '是一個質數')
for 迴圈是 Python 常見的應用,巢狀迴圈(Nested loop) - 兩個for迴圈以上組成,雖然好用,但Python屬於高階語言,for的運算效能非常慢,因此還是盡量避免過多for 迴圈的應用,否則程式執行會消耗大量的運算資源與時間。
Python提供了許多內建函數,例如 print(),若有需要自己定義的函數,我們就能使用def來達成。
以下是簡單的規則:
• 以 def 開頭,後接函式名稱和小括號()
• 任何要傳入的參數/變數必須放在圓括號中間,並以逗號分隔。
• 最後以 return 為函式輸出結果。沒有輸出值的函式可以 return None 或不寫 return,不回傳任何值。
來看看簡單的範例 :
def printinfo(name,age=25):
print(name)
print(age)
return None
#使用printinfo自定意函式
printinfo(age=33,name="Anthony")
printinfo(name="miki")
產生的結果如下:
Anthony
33
miki
25
最後簡單說明載入套件的語法,順便介紹常用的套件,"from ... import" 和 import 都是使用 module 的方式;Python 內的 module 指的就是檔案,只不過這個檔案內通常有許多的函式供開發者做使用。
import 相當於導入的是一个資料夾,透過相對路徑使用 module 中的哪一個 function,也需要額外進行定義。
import 模組名稱
模組名稱.xxx # xxx 即為欲使用的 function 名稱
"from…import" 可直接從模組中,導入特定的 function
from 模組名稱 import xxx
本次 IT鐵人挑戰賽,我們後續會常使用的套件如下:
#爬蟲
import requests
from bs4 import BeautifulSoup
#資料分析/處理
import pandas as pd
import numpy as np
#excel處理
import xlwt
import xlrd
後續我們如何使用這些套件,就讓我們繼續看下去!
第三天的課程,我們學習到 Python 簡單幾個基礎程式邏輯、函示定義...,是不是發現 Python 跟英文語句的表達非常相似呢?若想學習一些更細節的語法,請參考:Python Basics 免費學習資源
每天一點一滴跟著自由團隊一起學習,讓我們從0基礎,三十天後一同成為 AI 解夢大師!
自由團隊 官方網站:https://aifreeblog.herokuapp.com/
自由團隊 Github:https://github.com/AI-FREE-Team/
自由團隊 粉絲專頁:https://www.facebook.com/AI.Free.Team/
自由團隊 IG:https://www.instagram.com/aifreeteam/
自由團隊 Youtube:https://www.youtube.com/channel/UCjw6Kuw3kwM_il39NTBJVTg/
文章同步發布於:自由團隊部落格
(想看更多文章?學習更多AI知識?敬請鎖定自由團隊的頻道!)